package com.xinqi.modules.stats.score.service;

import com.xinqi.common.mybatis.data.service.BaseService;
import com.xinqi.modules.stats.score.domain.CourseTotalScoreEntity;
import com.xinqi.modules.stats.score.dto.req.*;
import com.xinqi.modules.stats.score.dto.rsp.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;


/**
 * 成绩管理总成绩主表服务层
 *
 * @author: system
 * @date: 2023/03/26
 */
public interface CourseTotalScoreService extends BaseService<CourseTotalScoreEntity> {

    /** 总成绩：获取设置信息 */
    CourseTotalScoreResultDTO findCourseTotalScore(CourseTotalScoreClassDTO dto);

    /** 总成绩：设置总分和对学生显示成绩 */
    boolean setCourseTotalScore(CourseTotalScoreCreateDTO dto);

    /** 总成绩：APP顶部统计信息-老师端 */
    TotalScoreStudentScoreTeacherDTO main(CourseTotalScoreClassDTO dto);

    /** 总成绩：APP学生成绩加列表-老师端 */
    List<Map<String, Object>> studentTotalAPPScoreList(CourseTotalScoreClassDTO dto);

    /** 总成绩: WEB学生成绩加权行转列统计-老师端 */
    CourseContentTotalScorePCResultDTO studentTotalPCScoreList(CourseTotalScoreClassDTO dto);

    /** 总成绩下载 */
    void downTotalExcel(CourseTotalScoreStudentQueryDTO dto, HttpServletResponse response);

}
